class Settings:
    """存储游戏《外星人入侵》中所有设置的类"""

    def __init__(self):
        """初始化游戏静态设置"""
        self.screen_width = 1200
        self.screen_height = 800
        # 设置背景颜色
        self.bg_color = (230, 230, 230)
        # 飞船移动的速度
        self.ship_speed = 0.6

        '''子弹的设置'''
        self.bullet_speed = 0.7
        self.bullet_width = 3
        self.bullet_height = 15
        self.bullet_color = (60, 60, 60)
        # 限制子弹最大数量
        self.bullets_allowed = 50
        # # 是否开启子弹发射子弹的功能
        # self.auto_fire_bullet = False # 是否开启子弹发射子弹的功能
        # # 自动发射子弹的速度（时间间隔s）
        # self.auto_fire_speed = 0.5

        '''外星人的设置'''
        self.alien_speed = 0.3
        self.fleet_drop_speed = 14.0
        # fleet_direction为1表示向右移动，为-1表示向左移动（值可以代表速度）
        self.fleet_direction = 1

        # 设置玩家有三艘飞船（3条命）
        self.ship_limit = 3

        # 游戏难度增加比例（加快游戏节奏的速度设置）
        self.speedup_scale = 1.1
        # 分数的提高比例
        self.score_scale = 1.5

        self.initialize_dynamic_settings()

        # 每次击中得分
        self.alien_points = 50

    def initialize_dynamic_settings(self):
        """初始化随游戏进行而变化的设置"""
        self.ship_speed = 0.6
        self.bullet_speed = 0.7
        self.alien_speed = 0.3
        # fleet_direction为1表示向右移动，为-1表示向左移动（值可以代表速度）
        self.fleet_direction = 1
        # 计分
        self.alien_points = 50

    def increase_speed(self):
        """提高游戏难度"""
        self.ship_speed *= self.speedup_scale
        self.bullet_speed *= self.speedup_scale
        self.alien_speed *= self.speedup_scale
        self.alien_points = int(self.alien_points * self.score_scale)
